#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Core;
using Cephei.Core.Generic;
using Microsoft.FSharp.Core;
using Cephei.QL.Math;
namespace Cephei.QL.Math.Integrals
{
    /// <summary> 
	/// ! References: Gauss quadratures and orthogonal polynomials  G.H. Gloub and J.H. Welsch: Calculation of Gauss quadrature rule. Math. Comput. 23 (1986), 221-230  "Numerical Recipes in C", 2nd edition, Press, Teukolsky, Vetterling, Flannery,  \test the correctness of the result is tested by checking it against known good values.
	/// </summary>
    [Guid ("35B57791-175C-41fc-A7B7-BC7DD37304CA"),ComVisible(true)]
	public interface IGaussianQuadrature 
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
        /// <summary> 
		/// 
		/// </summary>
		 UInt64 Order {get;}
        /// <summary> 
		/// 
		/// </summary>
		 Cephei.QL.Math.IArray Weights {get;}
        /// <summary> 
		/// 
		/// </summary>
		 Cephei.QL.Math.IArray X {get;}
    }   

    /// <summary> 
	/// ! References: Gauss quadratures and orthogonal polynomials  G.H. Gloub and J.H. Welsch: Calculation of Gauss quadrature rule. Math. Comput. 23 (1986), 221-230  "Numerical Recipes in C", 2nd edition, Press, Teukolsky, Vetterling, Flannery,  \test the correctness of the result is tested by checking it against known good values. Factory
	/// </summary>
   	[ComVisible(true)]
    public interface IGaussianQuadrature_Factory 
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
        /// <summary> 
		/// 
		/// </summary>
	    IGaussianQuadrature Create (UInt64 n, Cephei.QL.Math.Integrals.IGaussianOrthogonalPolynomial p);
    }
}

